package demo01.FunctionalInterface;
/*
函数式接口的使用：一般作为方法的参数和返回值类型
 */
public class DemoTest {
    //定义一个方法使用函数式接口
    public static void method(Demo demo){
        demo.method();
    }

    public static void main(String[] args) {
        //调用method方法，方法的参数是一个接口，所以可以传递接口的实现类对象
        method(new DemoImpl());
        //调用method方法，方法的参数是一个接口,可以传递匿名内部类
        method(new Demo() {
            @Override
            public void method() {
                System.out.println("使用匿名内部类");
            }
        });
        //调用method方法，使用lambda表达式
        method(()->{
            System.out.println("使用lambda表达式");
        });
    }


}
